package cn.westv.scps.service.ownerfeedback;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

import cn.westv.scps.domain.OwnerFeedbackEntity;
import cn.westv.scps.utils.Page;

/**
 * 用户反馈
 * @author Administrator
 *
 */
public interface IOwnerFeedbackService {
	/**
	 * 根据hql查询所有
	 * @param hql
	 * @param entityClass
	 * @param params
	 * @return
	 */
	public List<OwnerFeedbackEntity> find(String hql, Class<OwnerFeedbackEntity> entityClass, Object[] params);

	/**
	 * 根据id获取一条记录
	 * @param entityClass
	 * @param id
	 * @return
	 */
	public OwnerFeedbackEntity get(Class<OwnerFeedbackEntity> entityClass, Serializable id);

	/**
	 * 根据hql分页查询，将数据封装到一个page分页工具类对象
	 * @param hql
	 * @param page
	 * @param entityClass
	 * @param params
	 * @return
	 */
	public Page<OwnerFeedbackEntity> findPage(String hql, Page<OwnerFeedbackEntity> page, Class<OwnerFeedbackEntity> entityClass, Object[] params);

	/**
	 * 根据SQL分页查询，将数据封装到一个page分页工具类对象
	 * @param sql
	 * @param page
	 * @param entityClass
	 * @param params
	 * @return
	 */
	public Page<OwnerFeedbackEntity> findPageBySql(String sql, Page<OwnerFeedbackEntity> page, Class<OwnerFeedbackEntity> entityClass, Object[] params);

	/**
	 * 新增和修改
	 * @param entity
	 */
	public void saveOrUpdate(OwnerFeedbackEntity entity);

	/**
	 * 保存
	 * @param entity
	 */
	public void save(OwnerFeedbackEntity entity);

	/**
	 * 增加
	 * @param entity
	 */
	public void update(OwnerFeedbackEntity entity);

	/**
	 * 批量增加和修改
	 * @param entitys
	 */
	public void saveOrUpdateAll(Collection<OwnerFeedbackEntity> entitys);

	/**
	 * 根据id删除单条数据
	 * @param entityClass
	 * @param id
	 */
	public void deleteById(Class<OwnerFeedbackEntity> entityClass, Serializable id);

	/**
	 * 根据id批量删除
	 * @param entityClass
	 * @param ids
	 */
	public void delete(Class<OwnerFeedbackEntity> entityClass, Serializable[] ids);

	/**
	 * 根据SQL查询所有
	 * @param SQL
	 * @param params
	 * @param entityClass
	 * @return
	 */
	public List<OwnerFeedbackEntity> querySQL(String SQL, Object[] params, Class<OwnerFeedbackEntity> entityClass);

	/**
	 * hql查询
	 * @param HQL
	 * @param params
	 * @param entityClass
	 * @return
	 */
	public OwnerFeedbackEntity queryHQL(String HQL, Object[] params, Class<OwnerFeedbackEntity> entityClass);
}
